package com.ruoyi.invoice.mapper;

import java.util.List;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.invoice.domain.InvoiceTemplateDetail;
import com.ruoyi.invoice.vo.InvoiceTemplateDetailVO;

/**
 * 发票凭证明细Mapper接口
 * 
 * @author ruoyi
 * @date 2025-03-05
 */
public interface InvoiceTemplateDetailMapper extends BaseMapper<InvoiceTemplateDetail>
{
    /**
     * 查询发票凭证明细
     * 
     * @param id 发票凭证明细主键
     * @return 发票凭证明细
     */
    public InvoiceTemplateDetail selectInvoiceTemplateDetailById(Long id);

    /**
     * 查询发票凭证明细列表
     * 
     * @param invoiceTemplateDetail 发票凭证明细
     * @return 发票凭证明细集合
     */
    public List<InvoiceTemplateDetail> selectInvoiceTemplateDetailList(InvoiceTemplateDetail invoiceTemplateDetail);

    /**
     * 新增发票凭证明细
     * 
     * @param invoiceTemplateDetail 发票凭证明细
     * @return 结果
     */
    public int insertInvoiceTemplateDetail(InvoiceTemplateDetail invoiceTemplateDetail);

    /**
     * 修改发票凭证明细
     * 
     * @param invoiceTemplateDetail 发票凭证明细
     * @return 结果
     */
    public int updateInvoiceTemplateDetail(InvoiceTemplateDetail invoiceTemplateDetail);

    /**
     * 删除发票凭证明细
     * 
     * @param id 发票凭证明细主键
     * @return 结果
     */
    public int deleteInvoiceTemplateDetailById(Long id);

    /**
     * 批量删除发票凭证明细
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteInvoiceTemplateDetailByIds(Long[] ids);

    List<InvoiceTemplateDetailVO> selectInvoiceTemplateDetailVO(Long templateId);
}
